# 配置生成和读取

# 获取plots目录下所有R文件
plot_files <- list.files("plots", pattern = "\\.R$", full.names = TRUE)

# 解析文件注释并生成配置
parse_plot_file <- function(file_path) {
  # 读取文件内容
  lines <- readLines(file_path)
  
  # 初始化变量
  title <- NULL
  description <- NULL
  
  # 解析注释
  for (line in lines) {
    # 去除空格
    line <- trimws(line)
    
    # 解析标题
    if (grepl("^#' @title", line)) {
      title <- trimws(sub("^#' @title", "", line))
    }
    # 解析描述
    else if (grepl("^#' @description", line)) {
      description <- trimws(sub("^#' @description", "", line))
    }
    # 如果遇到非注释行，停止解析
    else if (!grepl("^#", line)) {
      break
    }
  }
  
  # 如果没有找到标题，使用文件名作为标题
  if (is.null(title)) {
    title <- tools::file_path_sans_ext(basename(file_path))
  }
  
  # 返回解析结果
  list(
    title = title,
    description = if (!is.null(description)) description else "",
    file = basename(file_path),
    url_id = tools::file_path_sans_ext(basename(file_path))
  )
}

# 解析所有文件并生成配置
plot_examples_config <- lapply(plot_files, parse_plot_file)